package org.omg.dds.rpc;

import org.omg.dds.domain.DomainParticipant;
import org.omg.dds.sub.DataReaderQos;
import org.omg.dds.sub.Subscriber;
import org.omg.dds.pub.DataWriterQos;
import org.omg.dds.pub.Publisher;

public abstract class RequesterParams {
	
    public RequesterParams (DomainParticipant participant)
    {}
    
    abstract public <TRep> RequesterParams 
      ReplyListener (ReplyListener< TRep > listener);
  
    abstract public <TReq, TRep> RequesterParams 
      asyncReplyListener (AsyncReplyListener< TReq, TRep > listener);
    
    abstract public RequesterParams  serviceName (String name);
    
    abstract public RequesterParams  requestTopicName (String name);
    
    abstract public RequesterParams  replyTopicName (String name);
    
    abstract public RequesterParams  datawriterQos (DataWriterQos qos);
    
    abstract public RequesterParams  datareaderQos (DataReaderQos qos);
    
    abstract public RequesterParams  publisher (Publisher publisher);
    
    abstract public RequesterParams  subscriber (Subscriber subscriber);

}
